home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1985 October
/
Ahoy_Magazine_85-10_1985_Double_L.d64
/
mycroft mews
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
12KB
|
306 lines
10 rem "mystery at mycroft mews"
20 s=54272:forj=0to24:pokes+j,0:next:pokes+24,15
30 poke53280,0:poke53281,0:poke53283,6:print"[147]"chr$(8)chr$(142);
40 m$="[223][169][157][157][157][157] [223][169] [157][157][157][157] [157][157][157][157] [212][217] [157][157][157][157][146][223][205] [205] [145][157] [157][145] [157][145] [157][145][223][146]"
50 print"[147][150]"tab(8)m$"ystery at":print"[129]"tab(16)m$"ycroft"
60 print"[158]"tab(24)m$"ews":gosub20000
100 for j=49152to49220:readx:a=a+x:pokej,x:next:poke785,0:poke786,192
110 ifa<>8919thenprint"[147]ml data error":stop
120 deffnr(x)=int(rnd(1)*x)+1:y=rnd(-ti):deffnsx(x)=-(x>6)
140 v=53248:pokev+28,1:pokev+39,4:pokev+37,15:pokev+38,6:pokev+27,0:poke2040,13
150 forj=832to894step3:pokej,0:pokej+1,0:pokej+2,0:ifj<=880thenreada:pokej,a
160 next
170 mx=fnr(3):mv=fnr(12):mw=fnr(12):mr=fnr(12):ifmv=mrthen170
180 i=12:diml(74),u1(i),u2(i),g(i),al(i),h(i),l0(i),sx(1,4)
190 dimal$(5),it$(16),b$(16),s$(i),h$(i):h$(0)="stamp collector"
200 forj=1to16:readb$(j),it$(j)
210 i=fnr(16):ifl(58+i)>0then210
220 l(58+i)=j:l(12+j)=16:ifj>12then250
230 reads$(j),h$(j):l(j)=j:al(j)=fnr(6)-1:h(j)=fnr(12):l0(j)=fnr(15)
240 l(j+12)=-l0(j):g(j)=fnr(7)-16*(rnd(1)<.5)-32*(rnd(1)<.5)-64*(rnd(1)<.5)
250 next:l(30)=mx:l(49)=3andmw:l(50)=fnr(40)+20:forj=0to1:fori=0to3
260 readsx$(j,i):nexti,j:forj=0to5:readal$(j):next:forj=1tomx:readit$(13):next
270 l(mv)=0:l(25)=-mv:al(mr)=fnr(3)-1
275 l0(mw)=mr:if-l(12+mw)=mrthenl(12+mw)=-fnr(15):goto275
280 g(mv)=fnr(7)-8*(mx=2):ifmx<3theng(mv)=g(mv)or6
290 g(mr)=g(mr)or2^(mx+3):ifmx<3theng(mr)=g(mr)and251
300 printtab(8)"[156]how many players? (1-6)":poke198,0
310 wait198,1:geta$:a=val(a$):ifa<1ora>6then310
320 l(57)=a:forj=1toa:l(36+j)=5:l(42+j)=7:l(30+j)=17:next:p=1:dimsc$(a)
400 pokev+17,27:print"[147]":pokev+21,0
410 fory=1to4:print" ";:forx=1to4:h=(x*4-y-6-2*(h=12))and15
420 print"[155][169] [146][169][205][157][157][180][170][157][157][204][186][157][157][157][157][157][145]";:poke646,h:print"[163][163][163][157][157][157] [146][145][145] ";
430 next:print"":next:print"player #"p"":ifl(57)-l(58)=1then500
440 print"enter your secret code!":poke198,0:wait198,2:geta$,b$
450 ifsc$(p)=""thensc$(p)=a$+b$
460 ifsc$(p)=a$+b$then500
470 j=usr(33000):gosub20000:gosub20100:goto440
500 x=l(36+p):y=l(42+p):pokes+1,33:pokes+5,9:pokes+6,0
510 poke198,0:gosub20100:print"move to building desired":gosub20500
520 gosub20300:gosub20100:if(xand1)or(yand1)then520
530 j=2*y+x/2-8:b=l(58+j):ifb<>mvthen600
540 ifl(26)=p+100orabs(l(26))=mvorl(30+p)=mvthen600
550 print"that building is locked. try another.":goto520
600 l(30+p)=b:l(36+p)=x:l(42+p)=y:pokes+6,96:pokes+4,33:forj=0to12:pokes+1,33-j
610 u2(j)=0:u1(j)=0:next:pokes+4,0:pokev+21,0:print"[147][154]you are at the "b$(b)".[155]"
620 print"you have ";:ifl(50+p)thenprint"the "it$(l(50+p))".":goto640
630 print"no item."
640 i=0:print"you see:[152]":forj=1to12
645 ifl(j)=bthenprints$(j):u2(1)=u2(1)+1:i=1:u2(5)=j
650 next:forj=1to16:ifl(j+12)=bthenprint"the "it$(j):u2(2)=u2(2)+1:i=1
660 next:forj=1tol(57):ifj=porl(j+30)<>bthen690
670 print"player #"j;:i=1:u2(3)=u2(3)+1:ifl(50+j)=0thenprint:goto690
680 print"<with an item>":u2(4)=u2(4)+1
690 next:ifi=0thenprint"nothing worth mentioning."
695 print"[155]press button for turn options":gosub20400
700 print"[147][150]turn options...":my=1:y=1:pokev+17,91:u1(1)=1:print"search"
720 ifu2(1)thenprint"interrogate suspect":my=2:u1(2)=2
730 ifu2(2)oru2(4)thenprint"take item":my=my+1:u1(my)=3
740 ifb=16and(u2(2)orl(50+p))thenprint"fingerprint item":my=my+1:u1(my)=4
750 ifb=16thenprint"accuse a suspect":my=my+1:u1(my)=5
760 ifb=14thenprint"read coroner's report":my=my+1:u1(my)=6
770 ifl(25)=100+porl(25)=bthenprint"read "it$(13):my=my+1:u1(my)=7
780 ifl(50+p)thenprint"drop or hide item carried":my=my+1:u1(my)=8
790 ifb<3orb=7thenprint"examine "b$(b)" records":my=my+1:u1(my)=9
800 gosub20100:print"choose one":gosub20600:i=u1(y):y=1:print"[147][154]";
810 onigosub1000,2000,1400,1100,5000,1200,1500,1300,1600:j=fre(0)
900 poke214,22:print:print"[158] *** press button to end your turn ***";:gosub20400
910 print"[147][154]"tab(12)"player #"p:printtab(12)"end of turn"
915 j=usr(33000):gosub20000
920 p=p+1:ifp>l(57)then950
930 ifl(30+p)>0then400
940 goto920
950 forj=1to12:l(j)=fnr(16):ifl(j)=mvthenl(j)=j
960 next:forj=31to36:ifl(j)<13thenl(l(j))=l(j)
970 next:l(mv)=0:p=1:goto930
1000 print"search":print"[155]you find:[152]":i=0
1010 forj=1to16:ifl(j+12)<>-bthen1030
1020 ifrnd(1)<.6orl(50+p)=15theni=1:print"the "it$(j):l(j+12)=b
1030 next:ifi=0thenprint"nothing of interest":return
1040 print"[154]take an item? ";:gosub20700:ifyn=0thenreturn
1050 u2(4)=0:print"[147][154]";:y=1:goto1400
1100 print"fingerprint item":print"[155]which one?":my=0
1110 forj=1to16:ifl(j+12)=bthenprint"the "it$(j):my=my+1:u1(my)=j
1120 next:i=l(p+50):ifithenprint"the "it$(i):my=my+1:u1(my)=i
1130 gosub20600:i=u1(y):print"[147][154]lab report:":print"the "it$(i)
1140 print"bears the fingerprints of":l(i+12)=b:ifl(p+50)=ithenl(p+50)=0
1150 ifi<13thenifl0(i)<13thenprints$(l0(i))".":return
1160 ifi=13thenprints$(mv)".":return
1170 print"no suspect.":return
1200 print"coroner's report:":x=abs(mv>6):print"subject is "sx$(x,0)","
1210 print"approximately"l(50)"years of age.":j=usr(34000+l(49)*10)
1220 readt$:print"subject apparently was "t$
1230 readt$:print"by a "t$".":return
1300 print"drop or hide item carried":print"[155]do you want to hide the"
1310 i=l(50+p):printit$(i)"? ";:gosub20700:l(50+p)=0
1320 print:print"[155]you drop the "it$(i)"."
1330 l(12+i)=b*(1+yn*2):ifynthenprint"item hidden."
1340 fori=1to200:next:poke198,0:return
1400 print"take item":print"[155]which one?":my=0
1410 forj=1to16:ifl(j+12)=bthenprint"the "it$(j):my=my+1:u1(my)=j
1420 next:ifu2(4)=0then1450
1430 forj=1tol(57):ifj=porl(j+30)<>borl(j+50)=0thennext:goto1450
1440 print"player #"j"[157]'s item":my=my+1:u1(my)=100+j:next
1450 gosub20600:i=u1(y):ifi>100theni=l(i-50):l(u1(y)-50)=0
1460 print"[147]":j=l(50+p):ifjthenprint"you drop the "it$(j)".":l(j+12)=b
1470 print"you take the "it$(i)".":l(50+p)=i:l(i+12)=100+p:return
1500 print"extract from the "it$(13):print"of "s$(mv)":"
1510 j=usr(34000+l(30)*100)
1520 readt$:i=val(t$):ifi=0thenprintt$:goto1520
1530 print"[152]":forj=1to12:ifiandg(j)thenprint" "s$(j)
1540 next:print:j=fre(0):return
1600 print"examine "b$(b)" records":print"[155]about whom?"
1610 forj=1to12:prints$(j):next:my=12:gosub20600
1620 print"[147][154]"b$(b)" report":print"on "s$(y)":":onbgoto1650,1690
1630 j=usr(34400):forj=1to(g(y)and7):readt$:next
1640 printtab(8)t$" account":return
1650 if(g(y)and40)=0thenprint"subject not in records.":return
1660 ifg(y)and8thenprint"subject recently drew up a new will.":return
1670 print"subject can expect to inherit":print"substantial wealth in the near"
1680 print"future.":return
1690 if(g(y)and64)=0thenprint"subject not in files":return
1700 print"patient severely paranoiac, envious and"
1710 print"resentful of others. may show sudden"
1720 print"homicidal fury.":return
2000 y=1:q=3:h=0:q4=-1:ifu2(1)=1thenq1=u2(5):goto2100
2010 print"interrogate a suspect":print"[155]which one?":my=0
2020 forj=1to12:ifl(j)=bthenprints$(j):my=my+1:u1(my)=j
2030 next:gosub20600:q1=u1(y):y=1
2100 print"[147][154]interrogate "s$(q1):my=13:poke198,0:i=12:ifq4=0then2120
2110 print"[155]about whom?":forj=1toi:prints$(j):next
2115 print"<an item>":goto2130
2120 print"[155]about what item?":forj=1toi:print"the "it$(j):next
2125 print"<a suspect>"
2130 ifh<>0thenpoke782,y:sys49189:h=0
2140 gosub20600:h=1:ify=13thenh=0:q4=notq4:goto2100
2150 q2=y:q=q-1:yn=(rnd(1)<.75):gosub20100:onq4+2gosub2200,3000
2160 forj=1to100:next:poke198,0:ifqthen2130
2170 j=fre(0):return
2200 q3=fnr(12):ifq3=mvorq3=q1then2200
2210 t$=s$(q2):ifrnd(1)>.2orl(28)=100+pthen2240
2220 l(29)=(l(29)+1)and1:ifl(29)thenprint"i never gossip.":return
2230 print"i don't have time to talk now.":return
2240 x=fnsx(q2):ifq2=q1then2500
2250 ifq2=mvthen2400
2260 onfnr(7)goto2290,2300,2300,2320,2320,2360
2270 ifal(q1)<3oral(q1)<>al(q2)then2285
2280 print"i was with "t$:print"on the night of the murder.":return
2285 print"i can't confirm "sx$(x,3)" alibi.":return
2290 printt$" did it, i'm sure!":return
2300 printt$:i=fnr(3):j=2*i-1:ifg(q2)and2^(3+i)thenj=j-1
2310 gosub20800:return
2320 gosub20900:ifrnd(1)>.5then2370
2340 printt$" owns":a=-1*yn:ifa=0thenprint"a new car.":return
2350 print"the "it$(a)".":return
2360 a=h(q2)
2370 printt$" is":print"a "h$(a)".":return
2400 onfnr(3)goto2440,2470
2410 iffnr(3)=1thenprint"how tragic that":printsx$(x,1)"'s gone.":return
2420 iffnr(2)=1thenprint"i think it was suicide.":return
2430 print"i think that "s$(q3):print"murdered "sx$(x,2)".":return
2440 i=fnr(4)-1:ifyntheni=l(49)
2450 print"i heard that "sx$(x,1)" was killed":j=usr(34000+i*10)
2460 readt$,t$:print"by a "t$".":return
2470 i=fnr(3):ifyntheni=l(30)
2480 print"i heard that "sx$(x,1)" was":j=i+5:gosub20800:return
2500 onfnr(4)goto2530,2540,2550
2510 gosub20900:ifa=0thenprint"i own a new car.":return
2520 print"i own the":printit$(a)".":return
2530 print"i was "al$(al(q1)):print"on the night of the crime.":return
2540 a=h(q1):goto2560
2550 gosub20900
2560 print"i am a "h$(a)".":return
3000 onfnr(5)goto3030,3060,4030,4050
3010 print"i ";:ifnot(l0(q2)=q1)or(q1=mr)thenprint"do not ";
3020 print"own the":printit$(q2)".":return
3030 ifyn=0or(q2=mwandq1=mr)orl0(q2)>12then3050
3035 ifl0(q2)=q1then3010
3040 prints$(l0(q2))" owns":print"the "it$(q2)".":return
3050 print"i'm not sure who owns":print"the "it$(q2)".":return
3060 i=fnr(57):x=abs(l(12+q2)):ifx<100then4000
3070 x=x-100:ifyn=0thenx=i
3080 ifx=pthenprint"you have the "it$(q2)",":print"don't you?":return
3090 print"i think that player #"x"has":print"the "it$(q2)".":return
4000 ifyn=0or(q2=mwandq1=mr)thenj=9:goto20800
4010 ifx=q1thenprint"i've got the":printit$(q2)".":return
4020 print"i saw that at the ":printb$(x)".":return
4030 print"the "it$(q2)" was ";:i=(q2=mw)=yn:ifi=0orq1=mrthenprint"not";
4040 print:print"the murder weapon.":return
4050 x=0:forj=1to12:ifh(j)=q2andrnd(1)>.5thenx=j
4060 next:i=l0(q2):ifi>12theni=0
4070 ifrnd(1)<.5thenx=i
4080 ifx=0thenj=9:goto20800
4090 prints$(x)" is":print"a "h$(q2)".":return
5000 print"[150]accuse!":print"[155]who was killed?":my=12:q=-1
5010 forj=1to12:prints$(j):next:y=1:gosub20600:q=q*(y=mv)
5020 print"[147][158]accuse!":print"[155]who killed "s$(y)"?":y=1
5030 forj=1to12:prints$(j):next:gosub20600:h=y:q=q*(h=mr)
5040 print"[147][153]accuse!":print"[155]what weapon did":prints$(h)" use?":y=1
5050 forj=1to12:print"the "it$(j):next:gosub20600:q=q*(y=mw)
5060 print"[147][154]accuse!":print"[155]why did "s$(h):print"commit murder?":y=1
5070 x=fnsx(h):fora=0to4step2:j=a:printsx$(x,1)" ";:gosub20800:next
5080 my=3:y=1:gosub20600:q=q*(y=l(30))
5100 print"[147]the police are arresting":prints$(h)".....":pokes+5,13:pokes+6,0
5110 pokes+4,65:forj=1to20:pokes+1,16+16*(jand1):fori=1to250:next:next
5120 pokes+4,0:pokev+17,27:forj=1to600:next:ifqthen5200
5130 print"no...that was a false arrest.":print"you're out of the game!"
5140 l(30+p)=0:ifl(50+p)thenl(12+l(50+p))=b:l(50+p)=0
5150 j=usr(33200):gosub20000:l(58)=l(58)+1:ifl(58)<l(57)thenreturn
5160 restore:print"[150]all players have been eliminated!"
5170 print"nobody wins!":print"[156][163][163][163][163][163][163]":goto5300
5200 print"yes...you've cracked the case!":print"player #"p"wins the game!"
5210 j=usr(33100)
5300 gosub20000:print"here is the solution:[152]":prints$(mr)" murdered"
5310 prints$(mv)" using the":printit$(mw)", because "sx$(fnsx(mr),1)
5320 j=l(30)*2-2:gosub20800:forj=1to4e3:next:end
20000 pokes+5,9:pokes+6,192:pokes+3,8:t=ti
20010 ift>tithen20010
20020 pokes+4,64:readj:ifj=0then20040
20030 readx,y:pokes+1,x:pokes,y:t=t+j*9:pokes+4,65:goto20010
20040 pokes+4,0:return
20100 sys49178:print"[155]";:return
20200 j=not(peek(56320)andpeek(56321))and31:a=0:ifpeek(198)thengeta$:a=asc(a$)
20210 bt=(jand16)or(a=13):ifbtthenreturn
20220 dx=sgn((jand8)-(a=135)-(jand4)+(a=134))
20230 dy=sgn((jand2)-(a=136)-(jand1)+(a=133)):ifdxordythenreturn
20240 goto20200
20300 gosub20200:ifbtthenreturn
20310 ifabs(dx+x-5)>3thendx=0
20320 ifabs(dy+y-7)>3thendy=0
20330 ifdx=0anddy=0then20300
20340 fori=1to4:x=x+dx/4:y=y+dy/4:gosub20500:pokes+1,30+3*(1andi)
20350 pokes+4,17:forj=1to40:next:pokes+4,0:next:goto20300
20400 poke198,0
20410 gosub20200:ifbt=0then20410
20420 return
20500 pokev,x*32-1:pokev+1,y*20+12:pokev+21,1:return
20600 poke782,y:sys49189
20610 gosub20200:ifbtthenreturn
20620 x=y+dy:ifx<1orx>mythenx=-(x>my)-my*(x<1)
20630 ifx=ythen20610
20640 poke782,y:sys49189:y=x:goto20600
20700 poke190,0:yn=-1
20710 printchr$(-18*yn)"yes[146] "chr$(yn*2+18)"no [146][157][157][157][157][157][157][157]";
20720 gosub20200:ifbtthenreturn
20730 ifdxthenyn=notyn:goto20710
20800 j=usr(35000+10*j):readt$:printt$".":return
20840 goto20720
20900 a=0:x=1:forj=1to12:ifl0(j)=q2andrnd(1)<1/xthena=j:x=x+1
20910 next:return
30000 data8,11,48,12,10,143,4,9,104,4,10,143,4,11,48,12,13,78
30010 data4,14,24,12,8,97,0
31000 data32,247,183,32,19,166,144,13,165,95,233,1
31010 data133,65,165,96,233,0,133,66,96,162,17,76
31020 data55,164,169,32,160,80,136,153,80,4,208,250
31030 data96,169,4,133,252,169,160,24,105,40,144,2
31040 data230,252,136,208,246,133,251,160,40,136,177,251
31050 data73,128,145,251,192,0,208,245,96
32000 data20,20,20,0,170,170,170,170,190,190,190,125,60,60,60,60,85
32100 datalaw office,elephant gun,phyllis writ,big-game hunter
32110 datamental health clinic,antique crossbow,dr. wilma libido
32120 data"[157]n archery expert",delicatessen,baseball bat,hannah nosh,sports fan
32130 datatheatre,box of rat poison,edith scrim,pest exterminator,hotel
32140 dataarquebus,cheryl valise,gun collector,art gallery,scimitar
32150 datadesiree ochre,master fencer,bank,brass candlestick,emilio lucre
32160 datacandelabra fancier,library,jar of sleeping pills,morton screed
32170 data"[157]n insomniac",bakery,.45 automatic,joseph cruller,marksman,pawn shop
32180 dataknitting needle,norman hock,champion knitter,church,ball-peen hammer
32190 datarev. arthur transept,tool collector,pub,vial of snake venom
32200 dataedgar quaff,herpetologist,shopping mall,item,morgue,master key
32210 datawarehouse,magnifying lens,police station,police badge
32300 datafemale,she,her,her,male,he,him,his
32400 dataat home alone,sick in bed,out of town,at a party
32410 dataat the theatre,in church
32900 dataledger,will,diary
33000 data2,15,210,2,14,24,2,12,143,2,11,218,4,9,247,4,7,233,4,10,143,0
33100 data4,28,49,4,37,162,4,42,62,2,47,107,4,37,162,2,42,62,2,47,107,2,37,162
33110 data2,42,62,4,56,99,2,42,62,2,47,207,1,42,62,1,37,162,2,42,62,8,28,49,0
33200 data2,25,30,2,23,181,2,31,165,2,35,134,2,47,107,2,37,162,2,35,134
33210 data2,47,107,2,37,162,2,35,134,2,31,165,2,29,223,4,31,165,0
34000 datapoisoned,"[157]n unidentified toxin"
34010 datashot,gun
34020 dataimpaled,sharp weapon
34030 databludgeoned,blunt instrument
34100 datai have threatened to tell the police
34110 dataall that i know about their criminal
34120 dataactivities if any of these people
34130 datadoesn't pay me another $9000 by,midnight sunday...,16
34200 datai hereby bequeath one hundred million
34210 datadollars to each of these loyal and
34220 datafaithful friends...,32
34300 datadear diary---,i found another anonymous letter in the
34310 datamail this morning. my life is in danger
34320 datafrom a jealous lunatic. the handwriting
34330 datacould be that of any of these people...,64
34400 datano,overdrawn,minimum,average,significant,substantial,maximum
35000 datawas being blackmailed
35010 datahas no secrets to hide
35020 datawill inherit millions
35030 datais not a legatee
35040 datais a homicidal maniac
35050 datais as sane as i am
35060 dataa blackmailer
35070 dataextremely wealthy
35080 datareceiving death threats
35090 datai don't know where that object is